Simulation of blood flow and velocity estimation


Friday, May 26, 10.00-12.00 on the ground floor in build 349, rooms 19, 25 and 34.

Purpose:


The purpose of this exercise is to make ultrasound RF data from flowing blood for a fixed velocity and to use this in estimation of the velocity for simulated data.

Preparation:


Read the section on flow simulation and the cross-correlation in the course notes.

Go through the different exercise points and write down suggestions for your Matlab code.

Exercise:


  1. Use the 1D convolution model for the received RF signal. The model is given by:

    y(t) = p(t) * s(t)

    where y(t) is the received signal, p(t) is the ultrasound pulse and s(t) is the white, Gaussian scattering signal from the blood. The basic ultrasound pulse is read from a file. Go to CampusNet to the folder exercises and download the ultrasound pulse data file pulse.mat. Place the datafile in your directory for the course.

    Load the data into Matlab and look at the variables by writing whos. The following variables are found in the file:

    Variable name
    Content
    Unit
    pulse Measured impulse response from a B-K Medical A/S transducer
    v
    fs Sampling frequency (100 MHz)
    Hz

    Read the data into Matlab and plot the pulse with the correct time axis and plot the spectrum of the pulse. What is it's center frequency?

  2. Make a single received signal from a blood vessel with a diameter of 10 mm. Assume that the scattering is random, Gaussian, and white, and that there are only scatterers in the vessel. The angle between the ultrasound beam and the vessel is 45 degrees. Plot the signal with the correct time axis.

  3. Make 100 received signals for fprf=5 kHz, vz=0.15 m/s, c=1500 m/s for a plug flow. Plot the signal for one given depth as a function of time. What is the frequency for this signal and why?

  4. Download the simulated RF signal from the Dropbox directory: exercises/exercise_3/data . The file name is: fem_rf.mat and put them in the course directory. The data is from the femoral artery and the simulation parameters are:

    Transducer: 2 MHz, linear array probe with 64 elements
    Pulse repetition frequency: 5 kHz
    Angle between flow and beam: 55 degrees
    Ultrasound pulse: 4 cycles at 2 MHz
    Sampling frequency: 10 MHz
    Resolution: 16 bits samples
    Position of vessel center: 60 mm from transducer surface
    Vessel radius: 2 mm
    Depth of first sample point: 54 mm from transducer surface
    Depth of last sample point: 70 mm from transducer surface

    The Matlab variable data contains the RF data. One column contains the received RF signal for one pulse emission. The matrix, thus, contains 5000 columns for one second of RF data. This datafile only contains 300 lines taken at the start of the cardiac cycle. The complete data file can be found in fem_rf_original.mat

    Make the same type of plots for this data as in point 3. Use the spectrum to determine the frequency and thereby velocity for different depths in the vessel.

  5. Make a function that implements the cross-correlation estimator using the function xcorr. It should take a number of RF lines, break them into segments, cross-correlate and average the correlations, and find the time shift between lines. Calculate the velocity from this. Try it out on your simulated data and on the data from the femoral artery. Experiment with the length of the lines and the number of lines.


Solution:


The solution can now be found in the DropBox.



http://home.healthtech.dtu.dk/jaj/aui_2023/exercises/exercise_3_velocity_estimation/flow_exercise.html
Last updated: 12:27 on Fri, 26-May-2023